import axios from "axios"
import qs from "querystring"


const errorHandle = (status, info) => {
  switch(status){
    case 400:
      console.log("error 400 语意有误");
      break;
    case 401:
      console.log("error 401 服务器认证失败");
      break;
    case 403:
      console.log("error 403 服务器拒绝访问");
      break;
    case 404:
      console.log("error 404 地址错误");
      break;
    case 500:
      console.log("error 500 服务器遇到意外");
      break;
    case 502:
      console.log("error 502 服务器无响应");
      break;
    default:
      console.log(info);
      break;
  }
}

const instance = axios.create({
  // 网络请求公共配置
  timeout: 5000
})

// 添加请求拦截器
instance.interceptors.request.use(
  // 在发送请求之前做些什么
  function (config) {
    console.log("config:", config);
    if (config.method === "post"){
      config.data = qs.stringify(config.data)
    }
    return config
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
instance.interceptors.response.use(
  // 对响应数据做点什么
  function (response) {
    return response.status === 200 ? Promise.resolve(response) : Promise.reject(response);
  }, function (error) {
    // 对响应错误做点什么
    // return Promise.reject(error);
    const {response} = error;
    return errorHandle(response.status, response.info)
  });



  export default instance;